pub const Classes = struct {
    pub const Blob = webcore.Blob;
    pub const HTMLRewriter = api.HTMLRewriter.HTMLRewriter;
    pub const Element = api.HTMLRewriter.Element;
    pub const Comment = api.HTMLRewriter.Comment;
    pub const TextChunk = api.HTMLRewriter.TextChunk;
    pub const DocType = api.HTMLRewriter.DocType;
    pub const DocEnd = api.HTMLRewriter.DocEnd;
    pub const EndTag = api.HTMLRewriter.EndTag;
    pub const AttributeIterator = api.HTMLRewriter.AttributeIterator;
    pub const CryptoHasher = api.Bun.Crypto.CryptoHasher;
    pub const Expect = jsc.Expect.Expect;
    pub const ExpectAny = jsc.Expect.ExpectAny;
    pub const ExpectAnything = jsc.Expect.ExpectAnything;
    pub const ExpectCustomAsymmetricMatcher = jsc.Expect.ExpectCustomAsymmetricMatcher;
    pub const ExpectMatcherContext = jsc.Expect.ExpectMatcherContext;
    pub const ExpectMatcherUtils = jsc.Expect.ExpectMatcherUtils;
    pub const ExpectStatic = jsc.Expect.ExpectStatic;
    pub const ExpectCloseTo = jsc.Expect.ExpectCloseTo;
    pub const ExpectObjectContaining = jsc.Expect.ExpectObjectContaining;
    pub const ExpectStringContaining = jsc.Expect.ExpectStringContaining;
    pub const ExpectStringMatching = jsc.Expect.ExpectStringMatching;
    pub const ExpectArrayContaining = jsc.Expect.ExpectArrayContaining;
    pub const ExpectTypeOf = jsc.Expect.ExpectTypeOf;
    pub const ScopeFunctions = jsc.Jest.bun_test.ScopeFunctions;
    pub const DoneCallback = jsc.Jest.bun_test.DoneCallback;
    pub const FileSystemRouter = api.FileSystemRouter;
    pub const Glob = api.Glob;
    pub const ShellInterpreter = api.Shell.Interpreter;
    pub const ParsedShellScript = api.Shell.ParsedShellScript;
    pub const Bundler = api.JSBundler;
    pub const JSBundler = Bundler;
    pub const Transpiler = api.JSTranspiler;
    pub const JSTranspiler = Transpiler;
    pub const Listener = api.Listener;
    pub const MatchedRoute = api.MatchedRoute;
    pub const NodeJSFS = node.fs.Binding;
    pub const Request = webcore.Request;
    pub const Response = webcore.Response;
    pub const MD4 = api.Bun.Crypto.MD4;
    pub const MD5 = api.Bun.Crypto.MD5;
    pub const SHA1 = api.Bun.Crypto.SHA1;
    pub const SHA224 = api.Bun.Crypto.SHA224;
    pub const SHA256 = api.Bun.Crypto.SHA256;
    pub const SHA384 = api.Bun.Crypto.SHA384;
    pub const SHA512 = api.Bun.Crypto.SHA512;
    pub const SHA512_256 = api.Bun.Crypto.SHA512_256;
    pub const ServerWebSocket = api.ServerWebSocket;
    pub const Subprocess = api.Subprocess;
    pub const ResourceUsage = api.Subprocess.ResourceUsage;
    pub const TCPSocket = api.TCPSocket;
    pub const TLSSocket = api.TLSSocket;
    pub const UDPSocket = api.UDPSocket;
    pub const SocketAddress = api.SocketAddress;
    pub const TextDecoder = webcore.TextDecoder;
    pub const Timeout = api.Timer.TimeoutObject;
    pub const Immediate = api.Timer.ImmediateObject;
    pub const BuildArtifact = api.BuildArtifact;
    pub const BuildMessage = api.BuildMessage;
    pub const ResolveMessage = api.ResolveMessage;
    pub const FSWatcher = node.fs.Watcher;
    pub const StatWatcher = api.node.fs.StatWatcher;
    pub const HTTPServer = api.HTTPServer;
    pub const HTTPSServer = api.HTTPSServer;
    pub const DebugHTTPServer = api.DebugHTTPServer;
    pub const DebugHTTPSServer = api.DebugHTTPSServer;
    pub const Crypto = webcore.Crypto;
    pub const FFI = api.FFI;
    pub const H2FrameParser = api.H2FrameParser;
    pub const FileInternalReadableStreamSource = webcore.FileReader.Source;
    pub const BlobInternalReadableStreamSource = webcore.ByteBlobLoader.Source;
    pub const BytesInternalReadableStreamSource = webcore.ByteStream.Source;
    pub const PostgresSQLConnection = api.Postgres.PostgresSQLConnection;
    pub const MySQLConnection = api.MySQL.MySQLConnection;
    pub const PostgresSQLQuery = api.Postgres.PostgresSQLQuery;
    pub const MySQLQuery = api.MySQL.MySQLQuery;
    pub const TextEncoderStreamEncoder = webcore.TextEncoderStreamEncoder;
    pub const NativeZlib = api.NativeZlib;
    pub const NativeBrotli = api.NativeBrotli;
    pub const NodeHTTPResponse = api.NodeHTTPResponse;
    pub const FrameworkFileSystemRouter = bun.bake.FrameworkRouter.JSFrameworkRouter;
    pub const DNSResolver = api.dns.Resolver;
    pub const S3Client = webcore.S3Client;
    pub const S3Stat = webcore.S3Stat;
    pub const ResumableFetchSink = webcore.ResumableFetchSink;
    pub const ResumableS3UploadSink = webcore.ResumableS3UploadSink;
    pub const HTMLBundle = api.HTMLBundle;
    pub const RedisClient = api.Valkey;
    pub const BlockList = api.BlockList;
    pub const NativeZstd = api.NativeZstd;
    pub const SourceMap = bun.SourceMap.JSSourceMap;
};

const bun = @import("bun");
const jsc = bun.jsc;
const webcore = bun.webcore;

const api = bun.api;
const node = api.node;
